<?php
class ContactController extends Osml_Controller_Action
{

    public function indexAction()
    {
        $request = $this->getRequest();
        $model = new Back_Model_TypeContact();
        $options['modeContact'] = $model->listerPourSelect();
        $utilisateurSession = Jnd_App::getEnvironnement()->getUtilisateurCourant();
        
        $form = new Front_Form_Contact("Formulairejndpro", $options);
        if ($request->isPost()) {
            if ($form->isValid($request->getPost())) {
                $values = $form->getValues();
                $mail = Jnd_Mail::factory("utf-8");
                $mail->setFrom($values["email"], $values['from']);
                
                //    Récupération du ou des destinataires
                $typeContact = new Back_Model_TypeContact($values['modeContact']);
                $mail->setSubject("[Formulaire Contact][{$typeContact->getAContacter()}]" . $values['objet']);
                switch ($typeContact->getModeContact()) {
                    case "groupe":
                        $groupe = Back_Model_Groupes::chercherParNom($typeContact->getAContacter());
                        foreach($groupe->getMembres() as $idMembre) {
                            $utilisateur = new Back_Model_Utilisateurs($idMembre);
                            $mail->addTo($utilisateur->getMail(), $utilisateur->getPrenomNom());
                        }
                        break;
                    case "utilisateur":
                        $utilisateur = Back_Model_Utilisateurs::chercherParPseudo($typeContact->getAContacter());
                        $mail->addTo($utilisateur->getMail(), $utilisateur->getPrenomNom());
                        break;
                }
                
                $message = $values['message'];
                $mail->setBodyHtml($message);
                $mail->setBodyText(strip_tags($message));
                
                $mail->send();
                $this->redirect("confirmation", "accueil", "front", array("mode" => "mailenvoye"));                
            }
        } else {
            if (!is_null($utilisateurSession) && $utilisateurSession->getId() > 0) {
                $options['from'] = $utilisateurSession->getPseudo();
                $options['email'] = $utilisateurSession->getMail();
                $form->populate($options); 
            }
        }
        
        $this->view->form = $form; 
    }
}

